import { Toast } from 'antd-mobile'
import axios, { AxiosResponse } from 'axios'
// 创建axios实例
const instance = axios.create({
    // baseURL: "http://localhost:3000/front",
    baseURL:import.meta.env.VITE_API_BASE_URL+'/front',
    headers: {},
    timeout: 5000
})
// 请求拦截器
instance.interceptors.request.use(config => {
    // 通过自定义请求头携带token
    // ?? : 只有当左侧表达式为null或者undefined的时候, 才会执行右侧表达式    
    // || : 只要左侧表达式隐式类型为false, 都会执行右侧表达式
    const { token } = JSON.parse(localStorage.getItem('userLoginInfo') || '{}')
    if (token) {
        config.headers.Authorization = token
    }
    return config
})
// 响应拦截器
instance.interceptors.response.use((response: AxiosResponse<ResponseDataType>) => {
    // 登录超时状态
    if (response.data.code === 403) {
        // 提示登录超时
        Toast.show(response.data.msg)
        // 移除本地存储中过期的登录信息
        localStorage.removeItem('userLoginInfo')
        // 自动跳转到登录页面
        // navigate('/login')
        location.href = "#/login"
    }
    return response
})
// 导出instance实例对象
export default instance